--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
tests/frontend/RNodeCapabilities.test.js v4.7.0-rc.2 (a20c7e1c) Text, 4.85 KB
Tff7b72import Tb4b4b4{ Te6edf3describeTb4b4b4, Te6edf3itTb4b4b4, Te6edf3expect Tb4b4b4} Tff7b72from Ta5d6ff"vitest"Tb4b4b4;
Tff7b72import Tb4b4b4{
Te6edf3detectCapabilitiesTb4b4b4,
Te6edf3pickDefaultTransportTb4b4b4,
Te6edf3transportSuggestionKeysTb4b4b4,
Te6edf3TRANSPORT_SERIALTb4b4b4,
Te6edf3TRANSPORT_BLUETOOTHTb4b4b4,
Te6edf3TRANSPORT_WIFITb4b4b4,
Tb4b4b4} Tff7b72from Ta5d6ff"@/js/rnode/Capabilities.js"Tb4b4b4;
Tff7b72const Te6edf3mkEnv Tff7b72= Tb4b4b4(Te6edf3overrides Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4) Tb4b4b4=> Tb4b4b4(Tb4b4b4{
Te6edf3isSecureContextTff7b72: Tff7b72trueTb4b4b4,
Te6edf3navigatorTff7b72: Tb4b4b4{ Te6edf3userAgentTff7b72: Ta5d6ff"Mozilla/5.0"Tb4b4b4, Tb4b4b4...Tb4b4b4(Te6edf3overridesTb4b4b4.Te6edf3navigator Tff7b72|| Tb4b4b4{Tb4b4b4}Tb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4...Te6edf3overridesTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3describeTb4b4b4(Ta5d6ff"Capabilities.detectCapabilities"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3itTb4b4b4(Ta5d6ff"reports native serial when navigator.serial is present"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3env Tff7b72= Te6edf3mkEnvTb4b4b4(Tb4b4b4{ Te6edf3navigatorTff7b72: Tb4b4b4{ Te6edf3userAgentTff7b72: Ta5d6ff"x"Tb4b4b4, Te6edf3serialTff7b72: Tb4b4b4{Tb4b4b4} Tb4b4b4} Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3caps Tff7b72= Te6edf3detectCapabilitiesTb4b4b4(Tb4b4b4{ Te6edf3env Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3capsTb4b4b4.Te6edf3transportsTb4b4b4[Te6edf3TRANSPORT_SERIALTb4b4b4]Tb4b4b4.Te6edf3availableTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3capsTb4b4b4.Te6edf3transportsTb4b4b4[Te6edf3TRANSPORT_SERIALTb4b4b4]Tb4b4b4.Te6edf3kindTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"native"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"reports polyfill serial when usb + serial polyfill module are available"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3env Tff7b72= Te6edf3mkEnvTb4b4b4(Tb4b4b4{ Te6edf3navigatorTff7b72: Tb4b4b4{ Te6edf3userAgentTff7b72: Ta5d6ff"x"Tb4b4b4, Te6edf3usbTff7b72: Tb4b4b4{Tb4b4b4} Tb4b4b4}Tb4b4b4, Te6edf3serialTff7b72: Tb4b4b4{Tb4b4b4} Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3caps Tff7b72= Te6edf3detectCapabilitiesTb4b4b4(Tb4b4b4{ Te6edf3env Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3capsTb4b4b4.Te6edf3transportsTb4b4b4[Te6edf3TRANSPORT_SERIALTb4b4b4]Tb4b4b4.Te6edf3availableTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3capsTb4b4b4.Te6edf3transportsTb4b4b4[Te6edf3TRANSPORT_SERIALTb4b4b4]Tb4b4b4.Te6edf3polyfilledTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"flags missing polyfill when only usb is exposed"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3env Tff7b72= Te6edf3mkEnvTb4b4b4(Tb4b4b4{ Te6edf3navigatorTff7b72: Tb4b4b4{ Te6edf3userAgentTff7b72: Ta5d6ff"x"Tb4b4b4, Te6edf3usbTff7b72: Tb4b4b4{Tb4b4b4} Tb4b4b4} Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3caps Tff7b72= Te6edf3detectCapabilitiesTb4b4b4(Tb4b4b4{ Te6edf3env Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3capsTb4b4b4.Te6edf3transportsTb4b4b4[Te6edf3TRANSPORT_SERIALTb4b4b4]Tb4b4b4.Te6edf3availableTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72falseTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3capsTb4b4b4.Te6edf3transportsTb4b4b4[Te6edf3TRANSPORT_SERIALTb4b4b4]Tb4b4b4.Te6edf3reasonTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"polyfill_not_loaded"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"reports android_webview_no_serial on Android without USB"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3env Tff7b72= Te6edf3mkEnvTb4b4b4(Tb4b4b4{ Te6edf3navigatorTff7b72: Tb4b4b4{ Te6edf3userAgentTff7b72: Ta5d6ff"Linux; Android 11; SomePhone" Tb4b4b4} Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3caps Tff7b72= Te6edf3detectCapabilitiesTb4b4b4(Tb4b4b4{ Te6edf3env Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3capsTb4b4b4.Te6edf3transportsTb4b4b4[Te6edf3TRANSPORT_SERIALTb4b4b4]Tb4b4b4.Te6edf3availableTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72falseTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3capsTb4b4b4.Te6edf3transportsTb4b4b4[Te6edf3TRANSPORT_SERIALTb4b4b4]Tb4b4b4.Te6edf3reasonTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"android_webview_no_serial"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3capsTb4b4b4.Te6edf3platformTb4b4b4.Te6edf3isAndroidTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"reports bluetooth available when navigator.bluetooth is present"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3env Tff7b72= Te6edf3mkEnvTb4b4b4(Tb4b4b4{ Te6edf3navigatorTff7b72: Tb4b4b4{ Te6edf3userAgentTff7b72: Ta5d6ff"x"Tb4b4b4, Te6edf3bluetoothTff7b72: Tb4b4b4{Tb4b4b4} Tb4b4b4} Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3caps Tff7b72= Te6edf3detectCapabilitiesTb4b4b4(Tb4b4b4{ Te6edf3env Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3capsTb4b4b4.Te6edf3transportsTb4b4b4[Te6edf3TRANSPORT_BLUETOOTHTb4b4b4]Tb4b4b4.Te6edf3availableTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"flags insecure_context for bluetooth when not in secure context"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3env Tff7b72= Te6edf3mkEnvTb4b4b4(Tb4b4b4{ Te6edf3isSecureContextTff7b72: Tff7b72falseTb4b4b4, Te6edf3navigatorTff7b72: Tb4b4b4{ Te6edf3userAgentTff7b72: Ta5d6ff"x" Tb4b4b4} Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3caps Tff7b72= Te6edf3detectCapabilitiesTb4b4b4(Tb4b4b4{ Te6edf3env Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3capsTb4b4b4.Te6edf3transportsTb4b4b4[Te6edf3TRANSPORT_BLUETOOTHTb4b4b4]Tb4b4b4.Te6edf3availableTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72falseTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3capsTb4b4b4.Te6edf3transportsTb4b4b4[Te6edf3TRANSPORT_BLUETOOTHTb4b4b4]Tb4b4b4.Te6edf3reasonTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"insecure_context"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"always exposes wifi transport as available"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3env Tff7b72= Te6edf3mkEnvTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3caps Tff7b72= Te6edf3detectCapabilitiesTb4b4b4(Tb4b4b4{ Te6edf3env Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3capsTb4b4b4.Te6edf3transportsTb4b4b4[Te6edf3TRANSPORT_WIFITb4b4b4]Tb4b4b4.Te6edf3availableTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3describeTb4b4b4(Ta5d6ff"Capabilities.pickDefaultTransport"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3itTb4b4b4(Ta5d6ff"prefers serial when available"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3caps Tff7b72= Te6edf3detectCapabilitiesTb4b4b4(Tb4b4b4{ Te6edf3envTff7b72: Te6edf3mkEnvTb4b4b4(Tb4b4b4{ Te6edf3navigatorTff7b72: Tb4b4b4{ Te6edf3userAgentTff7b72: Ta5d6ff"x"Tb4b4b4, Te6edf3serialTff7b72: Tb4b4b4{Tb4b4b4}Tb4b4b4, Te6edf3bluetoothTff7b72: Tb4b4b4{Tb4b4b4} Tb4b4b4} Tb4b4b4}Tb4b4b4) Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3pickDefaultTransportTb4b4b4(Te6edf3capsTb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Te6edf3TRANSPORT_SERIALTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"falls back to bluetooth when serial unavailable"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3caps Tff7b72= Te6edf3detectCapabilitiesTb4b4b4(Tb4b4b4{ Te6edf3envTff7b72: Te6edf3mkEnvTb4b4b4(Tb4b4b4{ Te6edf3navigatorTff7b72: Tb4b4b4{ Te6edf3userAgentTff7b72: Ta5d6ff"x"Tb4b4b4, Te6edf3bluetoothTff7b72: Tb4b4b4{Tb4b4b4} Tb4b4b4} Tb4b4b4}Tb4b4b4) Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3pickDefaultTransportTb4b4b4(Te6edf3capsTb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Te6edf3TRANSPORT_BLUETOOTHTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"falls back to wifi when nothing else"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3caps Tff7b72= Te6edf3detectCapabilitiesTb4b4b4(Tb4b4b4{ Te6edf3envTff7b72: Te6edf3mkEnvTb4b4b4(Tb4b4b4) Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3pickDefaultTransportTb4b4b4(Te6edf3capsTb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Te6edf3TRANSPORT_WIFITb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3describeTb4b4b4(Ta5d6ff"Capabilities.transportSuggestionKeys"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3itTb4b4b4(Ta5d6ff"returns empty list when transport is available"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3caps Tff7b72= Te6edf3detectCapabilitiesTb4b4b4(Tb4b4b4{ Te6edf3envTff7b72: Te6edf3mkEnvTb4b4b4(Tb4b4b4{ Te6edf3navigatorTff7b72: Tb4b4b4{ Te6edf3userAgentTff7b72: Ta5d6ff"x"Tb4b4b4, Te6edf3serialTff7b72: Tb4b4b4{Tb4b4b4} Tb4b4b4} Tb4b4b4}Tb4b4b4) Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3transportSuggestionKeysTb4b4b4(Te6edf3capsTb4b4b4, Te6edf3TRANSPORT_SERIALTb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toEqualTb4b4b4(Tb4b4b4[Tb4b4b4]Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"returns reason key + android hint for serial on android"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3env Tff7b72= Te6edf3mkEnvTb4b4b4(Tb4b4b4{ Te6edf3navigatorTff7b72: Tb4b4b4{ Te6edf3userAgentTff7b72: Ta5d6ff"Android" Tb4b4b4} Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3caps Tff7b72= Te6edf3detectCapabilitiesTb4b4b4(Tb4b4b4{ Te6edf3env Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3keys Tff7b72= Te6edf3transportSuggestionKeysTb4b4b4(Te6edf3capsTb4b4b4, Te6edf3TRANSPORT_SERIALTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3keysTb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff"tools.rnode_flasher.support.serial.android_webview_no_serial"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3keysTb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff"tools.rnode_flasher.support.serial.android_use_chrome"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"includes https hint for bluetooth when not secure"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3env Tff7b72= Te6edf3mkEnvTb4b4b4(Tb4b4b4{ Te6edf3isSecureContextTff7b72: Tff7b72falseTb4b4b4, Te6edf3navigatorTff7b72: Tb4b4b4{ Te6edf3userAgentTff7b72: Ta5d6ff"x" Tb4b4b4} Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3caps Tff7b72= Te6edf3detectCapabilitiesTb4b4b4(Tb4b4b4{ Te6edf3env Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3keys Tff7b72= Te6edf3transportSuggestionKeysTb4b4b4(Te6edf3capsTb4b4b4, Te6edf3TRANSPORT_BLUETOOTHTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3keysTb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff"tools.rnode_flasher.support.bluetooth.insecure_context"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3keysTb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff"tools.rnode_flasher.support.bluetooth.requires_https"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────